import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;

/**
 * @ClassName Demo10
 * @Description 练习：集合信息筛选
 * 数组当中有多条“姓名+性别”的信息如下
 * 请通过 Predicate 接口的拼装将符合要求的字符串筛选到集合 ArrayList 中，需要同时满足两个条件：
 * 1.必须为女生
 * 2.姓名为4个字
 * @Author Li
 * @Date 2022/8/14 15:13
 * @ModifyDate 2022/8/14 15:13
 * @Version 1.0
 */
public class Demo10 {
    private static List<String> getList(Predicate<String> pre1,
                                        Predicate<String> pre2, String[] arr) {
        List<String> list = new ArrayList<>();
        for (String s : arr) {
            boolean test = pre1.and(pre2).test(s);
            if (test) {
                list.add(s);
            }
        }
        return list;
    }

    public static void main(String[] args) {
        String[] arr = {"迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女"};
        List<String> list = getList(s -> "女".equals(s.substring(s.indexOf(",") + 1)),
                s -> s.substring(0, s.indexOf(",")).length() == 4,
                arr);
        System.out.println(list);
    }
}
